Zjisteni hodnoty eventy z OI

Otázka od: b.trpaslik@centrum.cz

5. 12. 2003 17:28

Zdravim,

Tvorim novou komponentu spolecne s jejim editorem. Na formu tohoto
editoru mam novou (grafickou) komponentu (treba ctverecek). Uz se mi
podarilo dosahnout
toho, ze po otereni editoru komponety a kliknuti na ctverecek se mi
jeho vlastnosti zobrazi v Object Inspectoru. Takze mi to docela
komunikuje. Ctverecek ma i nejakou zverejnenou eventu (treba
OnClick). V OI si ji muzu nastavit.
Mam ale nasledujici problem:
Potreboval bych v tom editoru zjistit (stringovou) hodnotu, kterou ma eventa
OnClick
nastavenou (lepe receno jmeno metody, ktera je prirazena teto
udalosti). Typicky: napsat dovnitr toho ctverecku
"OnClick je
nastaveno na Ctrerecek1Click". Potrebuju tedy zjistit ten retezec
"Ctverecek1Click".

Diky
Marek Machalik


Odpovedá: Bronislav Klucka

5. 12. 2003 21:48


> Tvorim novou komponentu spolecne s jejim editorem. Na formu tohoto
> editoru mam novou (grafickou) komponentu (treba ctverecek). Uz se mi
> podarilo dosahnout
> toho, ze po otereni editoru komponety a kliknuti na ctverecek se mi
> jeho vlastnosti zobrazi v Object Inspectoru. Takze mi to docela
> komunikuje. Ctverecek ma i nejakou zverejnenou eventu (treba
> OnClick). V OI si ji muzu nastavit.
> Mam ale nasledujici problem:
> Potreboval bych v tom editoru zjistit (stringovou) hodnotu,
> kterou ma eventa OnClick
> nastavenou (lepe receno jmeno metody, ktera je prirazena teto
> udalosti). Typicky: napsat dovnitr toho ctverecku
"OnClick je
> nastaveno na Ctrerecek1Click". Potrebuju tedy zjistit ten
retezec
> "Ctverecek1Click".
>
procedure TForm1.Button1Click(Sender: TObject);
var proc:Procedure (Sender:TObject) of object;
begin
  proc:=Button1.OnClick;
  ShowMessage(MethodName(@proc)); //vrati
'Button1Click"
  ShowMessage(Format('%p',[MethodAddress('Button1Click')])); //vrati
@Button1Click
end;

Brona